package com.baomidou.mybatisplus.samples.generator.system.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

/**
 * <p>
 * 前台用户表
 * </p>
 *
 * @author baomidou
 * @since 2025-06-22
 */
@TableName("front_user")
@ApiModel(value = "FrontUser对象", description = "前台用户表")
public class FrontUser implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("主键")
    private Long id;

    @ApiModelProperty("租户ID")
    private String tenantId;

    @ApiModelProperty("账号")
    private String account;

    @ApiModelProperty("密码")
    private String password;

    @ApiModelProperty("昵称")
    private String name;

    @ApiModelProperty("真名")
    private String realName;

    @ApiModelProperty("邮箱")
    private String email;

    @ApiModelProperty("手机国家区号")
    private String areaCode;

    @ApiModelProperty("手机号")
    private String phone;

    @ApiModelProperty("头像")
    private String avatar;

    @ApiModelProperty("状态 0未激活 1正常 2冻结")
    private Integer status;

    @ApiModelProperty("第三方认证ID")
    private String oauthId;

    @ApiModelProperty("第三方认证类型")
    private String oauthType;

    @ApiModelProperty("登录次数")
    private Integer loginCount;

    @ApiModelProperty("最后登录时间")
    private LocalDateTime lastLoginTime;

    @ApiModelProperty("用户自己的邀请码")
    private String inviteCode;

    @ApiModelProperty("注册时填写的邀请人邀请码")
    private String inviterCode;

    @ApiModelProperty("创建人")
    private Long createUser;

    @ApiModelProperty("创建部门")
    private Long createDept;

    @ApiModelProperty("创建时间")
    private LocalDateTime createTime;

    @ApiModelProperty("修改人")
    private Long updateUser;

    @ApiModelProperty("修改时间")
    private LocalDateTime updateTime;

    @ApiModelProperty("是否已删除")
    private Integer isDeleted;

    @ApiModelProperty("资金密码")
    private String assetPassword;

    @ApiModelProperty("资金密码更新时间")
    private LocalDateTime assetPasswordUpdateTime;

    @ApiModelProperty("钱包地址")
    private String walletAddress;

    @ApiModelProperty("钱包类型：Tron或Ethereum")
    private String walletType;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public String getAccount() {
        return account;
    }

    public void setAccount(String account) {
        this.account = account;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getRealName() {
        return realName;
    }

    public void setRealName(String realName) {
        this.realName = realName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getAreaCode() {
        return areaCode;
    }

    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getAvatar() {
        return avatar;
    }

    public void setAvatar(String avatar) {
        this.avatar = avatar;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public String getOauthId() {
        return oauthId;
    }

    public void setOauthId(String oauthId) {
        this.oauthId = oauthId;
    }

    public String getOauthType() {
        return oauthType;
    }

    public void setOauthType(String oauthType) {
        this.oauthType = oauthType;
    }

    public Integer getLoginCount() {
        return loginCount;
    }

    public void setLoginCount(Integer loginCount) {
        this.loginCount = loginCount;
    }

    public LocalDateTime getLastLoginTime() {
        return lastLoginTime;
    }

    public void setLastLoginTime(LocalDateTime lastLoginTime) {
        this.lastLoginTime = lastLoginTime;
    }

    public String getInviteCode() {
        return inviteCode;
    }

    public void setInviteCode(String inviteCode) {
        this.inviteCode = inviteCode;
    }

    public String getInviterCode() {
        return inviterCode;
    }

    public void setInviterCode(String inviterCode) {
        this.inviterCode = inviterCode;
    }

    public Long getCreateUser() {
        return createUser;
    }

    public void setCreateUser(Long createUser) {
        this.createUser = createUser;
    }

    public Long getCreateDept() {
        return createDept;
    }

    public void setCreateDept(Long createDept) {
        this.createDept = createDept;
    }

    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }

    public Long getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(Long updateUser) {
        this.updateUser = updateUser;
    }

    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }

    public Integer getIsDeleted() {
        return isDeleted;
    }

    public void setIsDeleted(Integer isDeleted) {
        this.isDeleted = isDeleted;
    }

    public String getAssetPassword() {
        return assetPassword;
    }

    public void setAssetPassword(String assetPassword) {
        this.assetPassword = assetPassword;
    }

    public LocalDateTime getAssetPasswordUpdateTime() {
        return assetPasswordUpdateTime;
    }

    public void setAssetPasswordUpdateTime(LocalDateTime assetPasswordUpdateTime) {
        this.assetPasswordUpdateTime = assetPasswordUpdateTime;
    }

    public String getWalletAddress() {
        return walletAddress;
    }

    public void setWalletAddress(String walletAddress) {
        this.walletAddress = walletAddress;
    }

    public String getWalletType() {
        return walletType;
    }

    public void setWalletType(String walletType) {
        this.walletType = walletType;
    }

    @Override
    public String toString() {
        return "FrontUser{" +
            "id = " + id +
            ", tenantId = " + tenantId +
            ", account = " + account +
            ", password = " + password +
            ", name = " + name +
            ", realName = " + realName +
            ", email = " + email +
            ", areaCode = " + areaCode +
            ", phone = " + phone +
            ", avatar = " + avatar +
            ", status = " + status +
            ", oauthId = " + oauthId +
            ", oauthType = " + oauthType +
            ", loginCount = " + loginCount +
            ", lastLoginTime = " + lastLoginTime +
            ", inviteCode = " + inviteCode +
            ", inviterCode = " + inviterCode +
            ", createUser = " + createUser +
            ", createDept = " + createDept +
            ", createTime = " + createTime +
            ", updateUser = " + updateUser +
            ", updateTime = " + updateTime +
            ", isDeleted = " + isDeleted +
            ", assetPassword = " + assetPassword +
            ", assetPasswordUpdateTime = " + assetPasswordUpdateTime +
            ", walletAddress = " + walletAddress +
            ", walletType = " + walletType +
        "}";
    }
}
